With the development of radio and space technologies, several satellite based navigation systems (i.e. satellite positioning system or “SPS”) have already been built and more will be in use in the near future. SPS receivers, such as, for example, receivers using the Global Positioning System (“GPS”, also known as NAVSTAR, have become commonplace. Other examples of SPS systems include, but are not limited to, the United State (“U.S.”) Navy Navigation Satellite System (“NNSS”) (also known as TRANSIT), NAVSTAR, the Russian counterpart to NAVSTAR known as the Global Navigation Satellite System (“GLONASS”) and any future Western European SPS such as the proposed “Galileo” program. As an example, the U.S. NAVSTAR GPS system is described in GPS Theory and Practice, Fifth ed., revised edition by Hofmann-Wellenhof, Lichtenegger and Collins, Springer-Verlag Wien New York, 2001, which is fully incorporated herein by reference.
The U.S. GPS system was built and is operated by the United States Department of Defense. The system uses twenty-four or more satellites orbiting the earth at an altitude of about 11,000 miles with a period of about twelve hours. These satellites are placed in six different orbits such that at any time a minimum of six satellites are visible at any location on the surface of the earth except in the polar region. Each satellite transmits a time and position signal referenced to an atomic clock. A typical GPS receiver locks onto this signal and extracts the data contained in it. Using signals from a sufficient number of satellites, a GPS receiver can calculate its position, velocity, altitude, and time (i.e. navigation solution).
GPS and other satellite based navigational systems have some limitations such as the availability of a sufficient number of satellite signals. Satellite signals are sometimes not available in deep canyons, in areas with large number of buildings blocking the direct satellite signals, and in dense forest areas. In addition to this, the satellite signals can be completely blocked or greatly attenuated inside buildings. To reduce these errors, inertial measurement units (IMUs) equipped with microelectromechanical systems (MEMS) sensors can be integrated with a personal navigation device (PND) to provide data that is used to improve the position availability and reliability of the PND in degraded signal environments. For example, in an indoor environment where satellite signals are not available or a dense urban environment where multipath errors are common, MEMS sensor data can aid in the calculation of a navigation solution. IMUs include gyroscopes that measure changes in direction, accelerometers that estimate acceleration, magnetic sensors that can detect changes in the orientation of a device, and a host of other similar devices.
More particularly, after the position of a PND is initially determined, the IMUs allow the position of the PND to be determined as the PND moves, even if the satellite signals are blocked. The determination of a position by propagating a previous known position based on movement data (e.g., data provided by an IMU) is known as dead reckoning (DR), or inertial navigation. Currently, DR methods do not take into account how the PND is moving other than detecting changes in velocity, acceleration or heading.
Co-pending application Ser. No. 12/510,965, the contents of which are incorporated herein in their entirety, greatly advanced the state of the art by disclosing a method and apparatus of detecting and using motion modes in a mobile device. According to one aspect of the co-pending application, movement data is collected from an inertial measurement unit (IMU) of the mobile device and compared to two or more sets of training data, each set of training data corresponding to a different motion mode. Then, a motion mode is determined to be the current mode of the mobile device on the results of the comparison.
Nevertheless, some challenges remain. For example, altitude estimates using GPS measurements generally have a significant error, such that it is not possible to accurately determine the floor of a building the user is in or to detect the context in which the user is moving vertically (e.g. in an elevator/on an escalator). Meanwhile, it is important to obtain knowledge of the height of the floor the user is currently on, inside buildings. This information could be useful, for example, for location based services such as finding a store in a multi-level shopping mall. Moreover, it would be helpful to know whether the user is traveling inside an elevator or is possibly changing floors using a stairwell/ramp. Accordingly, it would be useful to integrate altitude measurements into a position estimation framework using DR as well as in a comprehensive User Context Detection scheme such as that shown in the co-pending application.